package cn.magicduck.demo;

import cn.magicduck.demo.ceiling.LevelOneCeiling;
import cn.magicduck.demo.ceiling.LevelTwoCeiling;
import cn.magicduck.demo.coat.DuluxCoat;
import cn.magicduck.demo.coat.LiBangCoat;
import cn.magicduck.demo.floor.ShengXiangFloor;
import cn.magicduck.demo.tile.DongPengTile;
import cn.magicduck.demo.tile.MarcoPoloTile;

/**
 * @projectName: design-pattern-demo
 * @className: Builder
 * @description: 无须描述
 * @author: MagicDuck
 * @create: 2020-07-21 10:33
 **/
public class Builder {

    /** 豪华欧式 [吊顶，二级顶] [涂料，多乐士] [地板，圣象] */
    public IMenu levelOne(Double area) {
        return new DecorationPackageMenu(area, "豪华欧式")
                .appendCeiling(new LevelTwoCeiling())
                .appendCoat(new DuluxCoat())
                .appendFloor(new ShengXiangFloor());
    }

    /** 轻奢田园 [吊顶，二级顶] [涂料，立邦] [地砖，马可波罗] */
    public IMenu levelTwo(Double area){
        return new DecorationPackageMenu(area, "轻奢田园")
                .appendCeiling(new LevelTwoCeiling())
                .appendCoat(new LiBangCoat())
                .appendTile(new MarcoPoloTile());
    }

    /** 现代简约 [吊顶，二级顶] [涂料，立邦] [地砖，东鹏] */
    public IMenu levelThree(Double area){
        return new DecorationPackageMenu(area, "现代简约")
                .appendCeiling(new LevelOneCeiling())
                .appendCoat(new LiBangCoat())
                .appendTile(new DongPengTile());
    }
}